void main() {
  // 空安全
  String str = '111';
  // str = null; // 报错 A value of type 'Null' can't be assigned to a variable of type 'String

  // 表示变量是个可以为空的字符串
  String? str1 = '222';
  str1 = null; // 不报错】


  List <String>? list = ['1111', '2222', '222'];
  list = null;

  String? getData(str) {
    if (str !=  null)  {
      return str;
    }
    return null;
  }

  // 类型断言
  // String? str2 = '111111';
  // str2 = null;
  // // 等于空会抛出异常，不等于空会执行
  // print(str2!.length);

  void getInfo(String? str) {
    // print(str!.length);
    try {
      print(str!.length);
    } catch(e) {
      print('is null');
    }
  }
  getInfo(null);
}